Exercise 11

Problem 2

Christian Enz

Swiss Federal Institute of Technology (EPFL), Lausanne, Switzerland

Initialization¶

Introduction¶

In this problem we want to design a fully-differential MOSFET-C low-pass filter using the LC ladder direct simulation approach.

Specifications¶

LP filter specifications.

The filter mask is shown in the above figure and the corresponding specifications are given below

$f_p =$ 20 kHz
$f_s =$ 120 kHz
$G_p =$ -1 dB
$G_s =$ -40 dB

The fillter mask is shown below.

We now will find the minimum filter order $N$ for matching the above mask with a Butterworth approximation.

$\Omega_s =$ 6.000000
$A_p =$ 1 dB
$A_s =$ 40 dB
$\epsilon =$ 0.508847140
$N =$ 2.947230304 (estimation)
$N =$ 3

The corresponding transfer magnitude is shown below.

It can be shown that the corresponding low-pass prototype filter (LPPF) is shown below.

Corresponding LPPF.

The normalized components values are given by

$C_{1,norm} =$ 0.798355 F
$L_{2,norm} =$ 1.596709 H
$C_{3,norm} =$ 0.798355 F

The normalized transfer function is shown below.

Third-order LC ladder filter.

In the direct simulation approach we start writing the state equations of the LC ladder filter as shown above as \begin{align*} I_1 &= \frac{V_{in}-V_2}{R_1},\\ V_2 &= \frac{I_1-I_3}{s\,C_2},\\ I_3 &= \frac{V_2-V_4}{s\,L_3},\\ V_4 &= V_{out} = \frac{I_3-I_5}{s\,C_4},\\ I_5 &= \frac{V_4}{R_5}. \end{align*} We then multiply all the currents by a normalization impedance $Z_0$ to only have voltages \begin{align*} V_1 &\triangleq Z_0 \cdot I_1 = \frac{Z_0}{R_1} \cdot (V_{in}-V_2),\\ V_2 &= \frac{I_1-I_3}{s\,Z_0\,C_2},\\ V_3 &\triangleq Z_0 \cdot I_3 = \frac{Z_0}{s\,L_3} \cdot (V_2-V_4),\\ V_4 &= V_{out} = \frac{I_3-I_5}{s\,Z_0\,C_4},\\ V_5 &\triangleq Z_0 \cdot I_5 = \frac{Z_0}{R_5} \cdot V_4. \end{align*} In the above equations we can identify 3 integration operators. It is then easy to draw the signal flow graph corresponding to the above equations, which is shown below

Signal flow-graph corresponding to the state equations.

We can simplify the above SFG by choosing $Z_0 = R_5$. The last box can be replaced by a wire. We can also get rid of one summation operator by adding the weighted input voltage to the second summation operator. This results in the SFG shown below.

Simplified SFG.

The above SFG can also be redrawn as shown below.

Simplified SFG.

The above SFG can be implemented with 3 integrators having the following integration time constants \begin{align*} \tau_1 &= R_5 \cdot C_2,\\ \tau_2 &= \frac{L_3}{R_5},\\ \tau_3 &= R_5 \cdot C_4. \end{align*}

The time constants can be obtained by denormalizing the time constants of the LPPF according to \begin{align*} \tau_1 &= \frac{C_{1,norm}}{\omega_p},\\ \tau_2 &= \frac{L_{2,norm}}{\omega_p},\\ \tau_3 &= \frac{C_{3,norm}}{\omega_p}. \end{align*}

$\tau_1 =$ 6.353 us
$\tau_2 =$ 12.706 us
$\tau_3 =$ 6.353 us

The integrators can be implemented with the fully-differential active-RC or MOSFET-C integrator shown below

Fully-differential active-RC and MOSFET-C integrator.

which have a transfer function given by \begin{equation*} T(s) \triangleq \frac{V_{out}}{V_{in}} = - \frac{1}{s\,\tau} \end{equation*} with $\tau = R\,C$. The above SFG can be implemented with MOSFET-C integrators as shown below.

MOSFET-C implementation of the 3rd-order LP filter.

Notice the input resistance which values is $R_1/2$ in order to compensate for the $-6\,dB$ gain of the passive LC ladder filter.

For the particular Butterworth approximation, the source and load resistances are equal $R_1 = R_5 = R$. The latter can be set with an additional constraint for example on the total integrated thermal noise, which sets the minimum value of the capacitance. We assume a total output integrated thermal noise

$V_{nout} =$ 50 $\mu V$

If we assume that all the OTAs contribute equally to the output noise, then \begin{equation*} V_{nout}^2 \cong 3 \cdot \frac{k\,T}{C}. \end{equation*} from which we can estimate the smallest value of the capacitance \begin{equation*} C_{min} = 3 \cdot \frac{k\,T}{V_{nout}^2} \end{equation*} leading to

$C_{min} =$ 4.968 pF

We finally choose

$C_1 =$ 5 pF
$C_2 =$ 10 pF
$C_3 =$ 5 pF
$R_1 =$ 1.271 $M\Omega$
$R_5 =$ 1.271 $M\Omega$

We can now verify the design by simulations.

Verification¶

The above design can be verified by simulations using ngspice using the following schematic.

Schematic used for the ngspice simulation.

Ideal OPAMP¶

.param C1=5p C2=10p C3=5p R1=1.270621MEG R5=1.270621MEG
Starting NGSpice simulation...

Simulation executed successfully.

******
** ngspice-43 : Circuit level simulation program
** Compiled with KLU Direct Linear Solver
** The U. C. Berkeley CAD Group
** Copyright 1985-1994, Regents of the University of California.
** Copyright 2001-2024, The ngspice team.
** Please get your ngspice manual from https://ngspice.sourceforge.io/docs.html
** Please file your bug-reports at https://ngspice.sourceforge.io/bugrep.html
** Creation Date: Jul 13 2024   10:19:33
******

Batch mode

Comments and warnings go to log-file: ./Simulations/ngspice/IdealOPAMP/MOSFET-C.ac.log


Contents of the log file:
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾

Using SPARSE 1.3 as Direct Linear Solver
Using SPARSE 1.3 as Direct Linear Solver

Note: No compatibility mode selected!


Circuit: * 3rd-order butterworth low-pass filter

Doing analysis at TEMP = 27.000000 and TNOM = 27.000000


No. of Data Rows : 1
ASCII raw file "./Simulations/ngspice/IdealOPAMP/MOSFET-C.ac.op"
Doing analysis at TEMP = 27.000000 and TNOM = 27.000000


No. of Data Rows : 405
hdc                 =  -3.474352e-04 at=  1.046651e+02
fc                  =  1.999330e+04
Note: Simulation executed from .control section 

Tdc = -0.000 dB
fc = 1.999e+04 Hz

Non-ideal OPAMP¶

We can replace the ideal OPAMP with a subcircuit that accounts for the finite gain and finite bandwidth. Let's first investigate the effect of finite DC gain by setting the DC gain to 40 dB and the gain-bandwidth product to 20 MHz.

.param Adc=1.0e+02 GBW=2.0e+07
Starting NGSpice simulation...

Simulation executed successfully.

******
** ngspice-43 : Circuit level simulation program
** Compiled with KLU Direct Linear Solver
** The U. C. Berkeley CAD Group
** Copyright 1985-1994, Regents of the University of California.
** Copyright 2001-2024, The ngspice team.
** Please get your ngspice manual from https://ngspice.sourceforge.io/docs.html
** Please file your bug-reports at https://ngspice.sourceforge.io/bugrep.html
** Creation Date: Jul 13 2024   10:19:33
******

Batch mode

Comments and warnings go to log-file: ./Simulations/ngspice/NonidealOPAMP/OPAMP.ac.log


Contents of the log file:
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾

Using SPARSE 1.3 as Direct Linear Solver
Using SPARSE 1.3 as Direct Linear Solver

Note: No compatibility mode selected!


Circuit: * opamp open-loop gain

Doing analysis at TEMP = 27.000000 and TNOM = 27.000000


No. of Data Rows : 1
ASCII raw file "./Simulations/ngspice/NonidealOPAMP/MOSFET-C.ac.op"
Doing analysis at TEMP = 27.000000 and TNOM = 27.000000


No. of Data Rows : 370
adc                 =  4.000000e+01 at=  1.000000e-01
gbw                 =  2.000613e+07
Note: Simulation executed from .control section 

Adc = 40.000 dB
GBW = 2.001e+07 Hz

We see that the OPAMP has the desired frequency response. Let's now simulate the filter with this OPAMP.

.param C1=5p C2=10p C3=5p R1=1.270621MEG R5=1.270621MEG
.param Adc=1.0e+02 GBW=2.0e+07
Starting NGSpice simulation...

Simulation executed successfully.

******
** ngspice-43 : Circuit level simulation program
** Compiled with KLU Direct Linear Solver
** The U. C. Berkeley CAD Group
** Copyright 1985-1994, Regents of the University of California.
** Copyright 2001-2024, The ngspice team.
** Please get your ngspice manual from https://ngspice.sourceforge.io/docs.html
** Please file your bug-reports at https://ngspice.sourceforge.io/bugrep.html
** Creation Date: Jul 13 2024   10:19:33
******

Batch mode

Comments and warnings go to log-file: ./Simulations/ngspice/NonidealOPAMP/MOSFET-C.ac.log


Contents of the log file:
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾

Using SPARSE 1.3 as Direct Linear Solver
Using SPARSE 1.3 as Direct Linear Solver

Note: No compatibility mode selected!


Circuit: * 3rd-order butterworth low-pass filter

Doing analysis at TEMP = 27.000000 and TNOM = 27.000000


No. of Data Rows : 1
ASCII raw file "./Simulations/ngspice/NonidealOPAMP/MOSFET-C.ac.op"
Doing analysis at TEMP = 27.000000 and TNOM = 27.000000


No. of Data Rows : 405
hdc                 =  -3.457444e-01 at=  1.000000e+02
fc                  =  1.775231e+04
Note: Simulation executed from .control section 

Tdc = -0.346 dB
fc = 1.775e+04 Hz

We see that the effect of the finite gain appears in the passband where the desired gain of 0 dB can no more be reached.

Let's now have a look at the effect of the finite bandwidth by setting the gain-bandwith product to 10 times the cut-off frequency.

.param Adc=1.0e+05 GBW=2.0e+05
Starting NGSpice simulation...

Simulation executed successfully.

******
** ngspice-43 : Circuit level simulation program
** Compiled with KLU Direct Linear Solver
** The U. C. Berkeley CAD Group
** Copyright 1985-1994, Regents of the University of California.
** Copyright 2001-2024, The ngspice team.
** Please get your ngspice manual from https://ngspice.sourceforge.io/docs.html
** Please file your bug-reports at https://ngspice.sourceforge.io/bugrep.html
** Creation Date: Jul 13 2024   10:19:33
******

Batch mode

Comments and warnings go to log-file: ./Simulations/ngspice/NonidealOPAMP/OPAMP.ac.log


Contents of the log file:
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾

Using SPARSE 1.3 as Direct Linear Solver
Using SPARSE 1.3 as Direct Linear Solver

Note: No compatibility mode selected!


Circuit: * opamp open-loop gain

Doing analysis at TEMP = 27.000000 and TNOM = 27.000000


No. of Data Rows : 1
ASCII raw file "./Simulations/ngspice/NonidealOPAMP/MOSFET-C.ac.op"
Doing analysis at TEMP = 27.000000 and TNOM = 27.000000


No. of Data Rows : 370
adc                 =  9.998916e+01 at=  1.000000e-01
gbw                 =  2.000714e+05
Note: Simulation executed from .control section 

Adc = 99.989 dB
GBW = 2.001e+05 Hz

We see that the OPAMP has the desired frequency response. Let's now simulate the filter with this OPAMP.

.param C1=5p C2=10p C3=5p R1=1.270621MEG R5=1.270621MEG
.param Adc=1.0e+05 GBW=2.0e+05
Starting NGSpice simulation...

Simulation executed successfully.

******
** ngspice-43 : Circuit level simulation program
** Compiled with KLU Direct Linear Solver
** The U. C. Berkeley CAD Group
** Copyright 1985-1994, Regents of the University of California.
** Copyright 2001-2024, The ngspice team.
** Please get your ngspice manual from https://ngspice.sourceforge.io/docs.html
** Please file your bug-reports at https://ngspice.sourceforge.io/bugrep.html
** Creation Date: Jul 13 2024   10:19:33
******

Batch mode

Comments and warnings go to log-file: ./Simulations/ngspice/NonidealOPAMP/MOSFET-C.ac.log


Contents of the log file:
‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾

Using SPARSE 1.3 as Direct Linear Solver
Using SPARSE 1.3 as Direct Linear Solver

Note: No compatibility mode selected!


Circuit: * 3rd-order butterworth low-pass filter

Doing analysis at TEMP = 27.000000 and TNOM = 27.000000


No. of Data Rows : 1
ASCII raw file "./Simulations/ngspice/NonidealOPAMP/MOSFET-C.ac.op"
Doing analysis at TEMP = 27.000000 and TNOM = 27.000000


No. of Data Rows : 405
hdc                 =  7.096449e-01 at=  1.473387e+04
fc                  =  2.069921e+04
Note: Simulation executed from .control section 

Tdc = 0.710 dB
fc = 2.070e+04 Hz

We see that the limited gain-bandwidth product introduces some additional losses above the cut-off frequency and some undesired overshoot just before the cut-off frequency.